package com.macro.mall.portal.service;

import com.macro.mall.common.api.CommonPage;
import com.macro.mall.common.api.CommonResult;
import com.macro.mall.model.PmsProduct;
import com.macro.mall.model.PmsProductCategory;
import com.macro.mall.portal.domain.CombinedPmsProduct;
import com.macro.mall.portal.domain.PmsPortalProductDetail;
import com.macro.mall.portal.domain.PmsProductCategoryNode;
import com.macro.mall.portal.dto.PmsProductDto;
import com.quyum.mall.market.dto.MarketSmsGroupBuyDTO;

import java.util.List;

/**
 * 前台商品管理Service
 * Created by macro on 2020/4/6.
 */
public interface PmsPortalProductService {
    /**
     * 综合搜索商品
     */
    CommonResult<CommonPage<PmsProductDto>> search(String keyword, Integer recommandStatus, Long productCategoryId, Long storeId, Integer pageNum, Integer pageSize, Integer sort);

    /**
     * 以树形结构获取所有商品分类
     */
    List<PmsProductCategory> categoryTreeList(Long storeId);

    /**
     * 获取前台商品详情
     *
     * @param id
     * @param groupBuyId
     * @return
     */
    PmsPortalProductDetail detail(Long id, MarketSmsGroupBuyDTO groupBuyDTO);

    /**
     * 获取组合商品列表
     *
     * @return
     * @author 高强
     * @Date 2020年9月17日
     */
    CommonPage<CombinedPmsProduct> getCombinedPmsProduct(Long memberId, Integer pageNum, Integer pageSize);

    /**
     * 获取组和商品的一个推荐
     *
     * @param memberId
     * @return
     */
    List<CombinedPmsProduct> getCombinedPmsProductRecommend(Long memberId);

    /**
     * 处理套餐价和子商品
     *
     * @param combinedPmsProduct
     * @return
     */
    CombinedPmsProduct savePrice(CombinedPmsProduct combinedPmsProduct);

    /**
     * 处理会员价
     * @param pmsProducts
     * @param storeId
     * @return
     */
    List<PmsProductDto> getMemberPrice(List<PmsProduct> pmsProducts, Long storeId);
}

